package oop;
/*
1.封装概述：
    是指隐藏对像的属性和实现细节，仅对完提供公共访问方式
2.封装的好处：
    *隐藏实现细节，提供公共的访问方式
    *提高代码的复用性
    *提高安全性
3.封装原则：
    *将不再需要对外提供的内容隐藏起来
    *把属性隐藏，提供公共方法对其访问
 */
public class Demo2_Encapsulation {
    /*
    private关键字的特点：
        1.是一个权限修饰符
        2.可以修饰成员变量和成员方法
        3.被其修饰的成员只能在本类中被访问
     */
    public static void main(String[] args) {
        Peopson p = new Peopson();
        p.setName("wzx");
        p.setAge(18);
        p.speak();
    }
}

class Peopson {
    private String name;
    private int age;
    //对成员变量封装之后需要提供get()和 set()方法

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age > 0 && age < 100) {
            this.age = age;
        }else {
            System.out.println("输入不合法");
        }
    }

    public  void speak() {
        System.out.println(name+"..."+age);
    }
}